Ansible এ রেজিস্টার (Register) হলো একটি ফিচার যা টাস্কের আউটপুট বা ফলাফল সংরক্ষণ করে, এবং সেই সংরক্ষিত তথ্যকে পরবর্তী টাস্কে ব্যবহার করতে দেয়। এটি প্লেবুক বা টাস্কে ডায়নামিক অবস্থা নির্ধারণ করতে এবং কন্ডিশনাল অপারেশন চালাতে অত্যন্ত কার্যকর।
register
কিওয়ার্ড ব্যবহার করে আপনি একটি টাস্কের আউটপুটকে একটি ভ্যারিয়েবলে সংরক্ষণ করতে পারেন। সংরক্ষিত এই আউটপুট ভ্যারিয়েবলের মধ্যে বিভিন্ন ডেটা থাকে, যেমন:
changed
বা failed
),---
- name: Example of register usage
hosts: localhost
tasks:
- name: Check if a file exists
stat:
path: /etc/passwd
register: file_check
- name: Display file existence
debug:
msg: "File exists: {{ file_check.stat.exists }}"
stat
মডিউল ব্যবহার করে /etc/passwd
ফাইলটি আছে কিনা তা চেক করা হচ্ছে এবং এর ফলাফল file_check
ভ্যারিয়েবলে সংরক্ষণ করা হচ্ছে।debug
মডিউল ব্যবহার করে file_check
ভ্যারিয়েবল থেকে stat.exists
এর মান যাচাই করা হচ্ছে, যাতে ফাইলটি আছে কিনা তা জানা যায়।register
দিয়ে সংরক্ষিত ভ্যারিয়েবলের মাধ্যমে আপনি পরবর্তী টাস্কে কন্ডিশনাল লজিক প্রয়োগ করতে পারেন, যেমন:
---
- name: Conditional task based on register result
hosts: localhost
tasks:
- name: Check if a file exists
stat:
path: /etc/passwd
register: file_check
- name: Create a file if it does not exist
file:
path: /tmp/example.txt
state: touch
when: not file_check.stat.exists
ব্যাখ্যা:
/etc/passwd
ফাইলটি চেক করা হয়েছে এবং ফলাফল file_check
তে সংরক্ষণ করা হয়েছে।file_check.stat.exists
false
হবে, অর্থাৎ /etc/passwd
ফাইলটি যদি না থাকে। এটি when
কন্ডিশন দিয়ে চেক করা হয়েছে।রেজিস্টার করা ভ্যারিয়েবলের মধ্যে বেশ কিছু সাধারণ ফিল্ড থাকে যা টাস্কের আউটপুট এবং স্ট্যাটাস সংরক্ষণ করে:
true
হবে।true
হবে।---
- name: Command output register example
hosts: localhost
tasks:
- name: Run a shell command
command: echo "Hello, Ansible!"
register: command_output
- name: Display the command output
debug:
msg: "The command output was: {{ command_output.stdout }}"
ব্যাখ্যা:
command_output
ভ্যারিয়েবলে সংরক্ষণ করা হয়েছে।debug
মডিউল দিয়ে সেই আউটপুট দেখানো হয়েছে {{ command_output.stdout }}
এর মাধ্যমে।stdout
, stderr
, changed
) ব্যবহার করে প্লেবুকে কন্ডিশন চেকিং করতে পারেন।এই ভাবে register
এবং এর সাথে সংরক্ষিত ফলাফল ব্যবহার করে Ansible Playbook কে আরো ডায়নামিক এবং ফ্লেক্সিবল করা যায়।
আরও দেখুন...